home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 October / MACPOWER-1997-10.ISO.7z / MACPOWER-1997-10.ISO / AMUG / PROGRAMMING / Mac F2C 1.3.5.sit / Mac F2C 1.3.5 / Mac F2C Libraries / libF77 Sources / sig_die.c < prev    next >
C/C++ Source or Header  |  1995-09-12  |  923b  |  59 lines

  1. #include "stdio.h"
  2. #include "signal.h"
  3.  
  4.  
  5. #if defined(TPM_F2C) || defined(SPM_F2C) || defined(CW_F2C)
  6. #include <setjmp.h>
  7. extern jmp_buf gRecoverToConsole;
  8. #endif 
  9.  
  10.  
  11. #ifndef SIGIOT
  12. #ifdef SIGABRT
  13. #define SIGIOT SIGABRT
  14. #endif
  15. #endif
  16.  
  17. #ifdef KR_headers
  18. void sig_die(s, kill) register char *s; int kill;
  19. #else
  20. #include "stdlib.h"
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  extern void f_exit(void);
  25.  
  26. void sig_die(register char *s, int kill)
  27. #endif
  28. {
  29.     /* print error message, then clear buffers */
  30.     fprintf(stderr, "%s¥n", s);
  31.  
  32. #if defined(TPM_F2C) || defined(SPM_F2C) || defined(CW_F2C)
  33.     fflush(stderr);
  34.     fflush(stdout);
  35.     longjmp( gRecoverToConsole, 1 );
  36. #else
  37.     if(kill)
  38.         {
  39.         fflush(stderr);
  40.         f_exit();
  41.         fflush(stderr);
  42.         /* now get a core */
  43. #ifdef SIGIOT
  44.         signal(SIGIOT, SIG_DFL);
  45. #endif
  46.         abort();
  47.         }
  48.     else {
  49. #ifdef NO_ONEXIT
  50.         f_exit();
  51. #endif
  52.         exit(1);
  53.         }
  54. #endif /* TPM, SPM, and CW */
  55.     }
  56. #ifdef __cplusplus
  57. }
  58. #endif
  59.